--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit b3349c2e242f98ac6c3d6b9fd3e47d091dc3c0e0
Parents : c3c3acb
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-04T17:22:14-05:00
chore(taskfile & github-actions): update task dependencies for frontend builds and streamline CI workflows; add task version input for setup action
Changes
4 files changed, 35 insertions(+), 32 deletions(-)
Diff
diff --git a/.github/actions/setup-dev-environment/action.yml b/.github/actions/setup-dev-environment/action.yml
index 7ba80554..926f7b05 100644
--- a/.github/actions/setup-dev-environment/action.yml
+++ b/.github/actions/setup-dev-environment/action.yml
@@ -16,6 +16,14 @@ inputs:
description: pnpm version activated through corepack
required: false
default: "11.1.2"
+ task-version:
+ description: go-task version installed from GitHub releases
+ required: false
+ default: "3.49.1"
+ install-task:
+ description: Install go-task for Taskfile.yml targets
+ required: false
+ default: "true"
runs:
using: composite
@@ -35,3 +43,8 @@ runs:
- name: Install dependencies
shell: bash
run: bash scripts/ci/github-install-deps.sh
+
+ - name: Setup Task
+ if: inputs.install-task == 'true'
+ shell: bash
+ run: sh scripts/ci/setup-task.sh "${{ inputs.task-version }}"
diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml
index 92f9adb4..30dac551 100644
--- a/.github/workflows/bench.yml
+++ b/.github/workflows/bench.yml
@@ -49,9 +49,6 @@ jobs:
node-version: ${{ env.NODE_VERSION }}
pnpm-version: ${{ env.PNPM_VERSION }}
- - name: Setup Task
- run: sh scripts/ci/setup-task.sh
-
- name: Restore benchmark baseline cache
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57
with:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 0d4f7858..b705d2d9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,4 +1,5 @@
# Primary CI: lint, tests, localization, Linux build check, E2E, and native builds (dev).
+# Verify matrix steps delegate to Taskfile.yml (task lint, test:frontend, test:lang).
#
# The frontend bundle is built once via the reusable frontend-build workflow and
# downloaded by downstream jobs instead of rebuilding on every runner.
@@ -83,20 +84,13 @@ jobs:
set -euo pipefail
case "${{ matrix.task.id }}" in
lint)
- pnpm run lint
- pnpm run typecheck
- pnpm exec knip
- uv run ruff check .
- uv run ruff format --check .
- uv run basedpyright -p pyrightconfig.json --level error
+ task lint
;;
frontend-tests)
- pnpm exec vitest run --exclude tests/frontend/LoadTimePerformance.test.js --exclude tests/frontend/i18n.test.js
- pnpm exec vitest run --config vitest.electron.config.js
+ task test:frontend
;;
lang-tests)
- pnpm exec vitest run tests/frontend/i18n.test.js
- uv run python -m pytest tests/backend/test_translator_handler.py
+ task test:lang
;;
*)
echo "Unknown matrix task: ${{ matrix.task.id }}" >&2
@@ -127,9 +121,7 @@ jobs:
pnpm-version: ${{ env.PNPM_VERSION }}
- name: Run backend tests
- run: |
- MESHCHAT_SKIP_STORAGE_LOCK=1 uv run python -m pytest tests/backend \
- --cov=meshchatx/src/backend
+ run: task test:backend
build-check:
name: Linux build check
@@ -159,7 +151,7 @@ jobs:
artifact-name: ${{ env.FRONTEND_ARTIFACT_NAME }}
- name: Compile backend sources
- run: uv run python -m compileall meshchatx/
+ run: task compile
- name: Build backend (cx_Freeze)
run: pnpm run build-backend
diff --git a/Taskfile.yml b/Taskfile.yml
index 48c4cf12..974ae48c 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -328,7 +328,7 @@ tasks:
compile:
desc: Compile Python to check for syntax errors
cmds:
- - "{{.PYTHON}} -m compileall meshchatx/"
+ - uv run python -m compileall meshchatx/
# --- Build & Packaging ---
@@ -339,7 +339,8 @@ tasks:
cmds:
- "{{.NPM}} run build"
- build:fe:
+ build:frontend:
+ aliases: [build:fe]
desc: Build frontend assets
deps: [deps:frontend]
cmds:
@@ -356,7 +357,7 @@ tasks:
dist:linux:appimage:
desc: Build Linux AppImage (x64 + arm64 only)
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=linux ARCH=x64 {{.NPM}} run build-backend"
@@ -366,7 +367,7 @@ tasks:
dist:linux:arm64:
desc: Build Linux arm64 AppImage
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=linux ARCH=arm64 {{.NPM}} run build-backend"
@@ -374,7 +375,7 @@ tasks:
dist:win:exe:
desc: Build Windows portable EXE
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=win32 {{.NPM}} run build-backend"
@@ -382,7 +383,7 @@ tasks:
dist:win:arm64:
desc: Build Windows arm64 portable EXE
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=win32 ARCH=arm64 {{.NPM}} run build-backend"
@@ -390,7 +391,7 @@ tasks:
dist:win:wine:
desc: Build Windows EXE/Installer via Wine
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=win32 PYTHON_CMD='{{.WINE_PYTHON}}' {{.NPM}} run build-backend"
@@ -398,7 +399,7 @@ tasks:
dist:fe:linux:
desc: Build Linux Electron app (prebuilt backend)
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run dist:linux"
@@ -409,38 +410,38 @@ tasks:
dist:linux-x64:
desc: Build Linux x64 AppImage + deb
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run dist:linux-x64"
dist:fe:rpm:
desc: Build RPM package
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run dist:rpm"
dist:fe:flatpak:
desc: Build Flatpak package
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run dist:flatpak"
dist:fe:win:
desc: Build Windows Electron apps
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run dist:windows"
dist:fe:zip:
desc: Build Electron ZIP (Linux)
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "PLATFORM=linux {{.NPM}} run build-backend"
- "{{.NPM}} run dist:zip"
dist:all:
desc: Build all Electron apps (Linux + Win)
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=linux {{.NPM}} run build-backend"
@@ -449,7 +450,7 @@ tasks:
dist:all:wine:
desc: Build all Electron apps (Linux + Win via Wine)
- deps: [build:fe]
+ deps: [build:frontend]
cmds:
- "{{.NPM}} run electron-postinstall"
- "PLATFORM=linux {{.NPM}} run build-backend"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────